幫助中心
技術(shù)運(yùn)維百科
一個(gè)可以查看Linux當(dāng)前緩存了哪些大文件的小工具
2017-05-24 15:31:22
  Linux 用戶可能經(jīng)常遇到的一個(gè)問(wèn)題是,機(jī)器有 16GB 內(nèi)存之多,運(yùn)行的進(jìn)程也不多,但是剩下的 free 內(nèi)存并不多,大部分都被 buff 和 cache 占用了(比如下面我的 PC)。
  $ free -h   total??????? used??????? free????? shared? buff/cache?? available   Mem:??????????? 15G??????? 6.4G??????? 2.3G??????? 1.1G??????? 6.9G??????? 7.7G   Swap:????????? 975M??????? 268K??????? 975M   雖然對(duì)于 Linux 的內(nèi)存分配機(jī)制來(lái)說(shuō),這種被 buff 和 cache 占用的內(nèi)存在系統(tǒng)需要時(shí)會(huì)及時(shí)釋放出來(lái),但是有時(shí)候我們想知道到底 cache 了些什么卻沒(méi)有一個(gè)好的辦法。   前幾天看到有個(gè)人用 go 寫了個(gè) pcstat,可以查看某個(gè)文件是否被緩存(作者的目的是數(shù)據(jù)庫(kù)調(diào)優(yōu)),也可以根據(jù)進(jìn)程的 PID 來(lái)查看都緩存了哪些文件,不過(guò)該工具不能查看整個(gè)操作系統(tǒng)都 cache 了哪些文件。   因此,我基于 pcstat 寫了個(gè) hcache,增加了查看當(dāng)前操作系統(tǒng)所 cache 的前若干個(gè)文件的特性,你可以從這里下載下來(lái)試用。如果有什么建議的話也歡迎反饋給我:hubottle@gmail.com 。   使用方法比較簡(jiǎn)單:   $ sudo hcache --top 10   [sudo] password for silenceshell:   +----------------------------------------------------------------------------------+----------------+------------+-----------+---------+   | Name???????????????????????????????????????????????????????????????????????????? | Size (bytes)?? | Pages????? | Cached??? | Percent |   |----------------------------------------------------------------------------------+----------------+------------+-----------+---------|   | /opt/google/chrome/chrome??????????????????????????????????????????????????????? | 114911208????? | 28055????? | 25457???? | 090.740 |   | /usr/share/code/code???????????????????????????????????????????????????????????? | 67688720?????? | 16526????? | 12274???? | 074.271 |   | /home/silenceshell/Software/pycharm-community-2016.2/lib/pycharm.jar?????????????????? | 95177431?????? | 23237????? | 11325???? | 048.737 |   | /opt/atom/atom?????????????????????????????????????????????????????????????????? | 62641344?????? | 15294????? | 10578???? | 069.164 |   | /usr/bin/dockerd???????????????????????????????????????????????????????????????? | 39121168?????? | 9552?????? | 7103????? | 074.361 |   | /home/silenceshell/Software/pycharm-community-2016.2/jre/jre/lib/amd64/libjfxwebkit.so | 57455824?????? | 14028????? | 6625????? | 047.227 |   | /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4.10.2????????????????????????????????? | 36462184?????? | 8902?????? | 6316????? | 070.950 |   | /usr/lib/beyondcompare/BCompare????????????????????????????????????????????????? | 30640160?????? | 7481?????? | 5505????? | 073.586 |   | /usr/bin/SecureCRT?????????????????????????????????????????????????????????????? | 29524560?????? | 7209?????? | 4806????? | 066.667 |   | /usr/share/code/libnode.so?????????????????????????????????????????????????????? | 21135976?????? | 5161?????? | 4588????? | 088.898 |   +---------------------------------------------------------------------   讓我們來(lái)查看一下其中列出的一個(gè)文件:   $ lsof /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4.10.2   COMMAND??? PID?? USER? FD?? TYPE DEVICE SIZE/OFF??? NODE NAME   quiterss 20630 silenceshell mem??? REG??? 8,5 36462184 3936610 /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4.10.2   默認(rèn)情況下會(huì)顯示 cache 的文件的全路徑,會(huì)比較長(zhǎng),也可以使用 --bname 選項(xiàng)來(lái)僅顯示文件名:   -------------+----------------+------------+-----------+---------+   $ sudo ./hcache --top 3? --bname   +-------------+----------------+------------+-----------+---------+   | Name?????? 
新客優(yōu)惠
特價(jià) 酷睿i3系列
性價(jià)比熱銷推薦,年銷量第一
1180/月起
USA-IDC為您提供免備案服務(wù)器 0元試用
立即聯(lián)系在線客服,即可申請(qǐng)免費(fèi)產(chǎn)品試用服務(wù)
立即申請(qǐng)